var tree = layui.tree, layer = layui.layer
    ,table = layui.table
    ,$ = layui.jquery,character;
var datas = [{
    title: '一级1'
    ,id: 1
    ,field: 'name1'
    ,checked: true
    ,spread: true
    ,children: [{
        title: '二级1-1'
        ,id: 3
        ,field: 'name11'
        ,children: [{
            title: '三级1-1-3'
            ,id: 23
            ,field: ''
            ,children: [{
                title: '四级1-1-3-1'
                ,id: 24
                ,field: ''
                ,children: [{
                    title: '五级1-1-3-1-1'
                    ,id: 30
                    ,field: ''
                },{
                    title: '五级1-1-3-1-2'
                    ,id: 31
                    ,field: ''
                }]
            }]
        },{
            title: '三级1-1-2'
            ,id: 8
            ,field: ''
            ,children: [{
                title: '四级1-1-2-1'
                ,id: 32
                ,field: ''
            }]
        }]
    },{
        title: '二级1-2'
        ,id: 4
        ,spread: true
        ,children: [{
            title: '三级1-2-1'
            ,id: 9
            ,field: ''
        },{
            title: '三级1-2-2'
            ,id: 10
            ,field: ''
        }]
    },{
        title: '二级1-3'
        ,id: 20
        ,field: ''
        ,children: [{
            title: '三级1-3-1'
            ,id: 21
            ,field: ''
        },{
            title: '三级1-3-2'
            ,id: 22
            ,field: ''
        }]
    }]
},{
    title: '一级2'
    ,id: 2
    ,field: ''
    ,spread: true
    ,children: [{
        title: '二级2-1'
        ,id: 5
        ,field: ''
        ,spread: true
        ,children: [{
            title: '三级2-1-1'
            ,id: 11
            ,field: ''
        },{
            title: '三级2-1-2'
            ,id: 12
            ,field: ''
        }]
    },{
        title: '二级2-2'
        ,id: 6
        ,field: ''
        ,children: [{
            title: '三级2-2-1'
            ,id: 13
            ,field: ''
        },{
            title: '三级2-2-2'
            ,id: 14
            ,field: ''
            ,disabled: true
        }]
    }]
},{
    title: '一级3'
    ,id: 16
    ,field: ''
    ,children: [{
        title: '二级3-1'
        ,id: 17
        ,field: ''
        ,fixed: true
        ,children: [{
            title: '三级3-1-1'
            ,id: 18
            ,field: ''
        },{
            title: '三级3-1-2'
            ,id: 19
            ,field: ''
        }]
    },{
        title: '二级3-2'
        ,id: 27
        ,field: ''
        ,children: [{
            title: '三级3-2-1'
            ,id: 28
            ,field: ''
        },{
            title: '三级3-2-2'
            ,id: 29
            ,field: ''
        }]
    }]
}];
var data1 = [{'id':'1','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'2','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'3','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'11','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'4','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'12','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'5','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'13','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'6','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'14','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'7','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'15','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'8','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'16','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'9','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'17','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}
    ,{'id':'10','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'},{'id':'18','text1':'text1','text2':'text2','text3':'text3','text4':'text4','text5':'text5','text6':'text6','text7':'text7','text8':'text8','text9':'text9','text10':'text10','text11':'text11','text12':'text12','text13':'text13'}];

var resourceCodes=[];

table.render({
    elem: '#characterid'
    //,data:data1
    ,url:"role/selectByPage"
    ,cols: [[
        {field:'name', title:'角色名称', fixed: true}
        ,{field:'code', title:'角色编码', fixed: true}
        ,{field:'type', title:'角色类型', fixed: true}
        ,{fixed: 'right', width:180, align:'center', toolbar: '#charactereditor', title:'操作'}
    ]]
    ,id: 'charactertableid'
    ,height: $(document).height() - $('#characterid').offset().top - 50
    ,page: true
    ,done:function(res, curr, count){
        $("[data-field = 'type']").children().each(function(){
            if($(this).text() == '1'){
                $(this).text("资源");
            }else if($(this).text() == '2'){
                $(this).text("标签");
            }
        })

    }
});
//监听工具条
table.on('tool(charactertable)', function(obj){
    var data = obj.data;
     resourceCodes=getmenuByrole(data.code);

   /*  trs.config.data = getData();
         tree.reload("menulistid");*/

    var objs=getData();
    var trs=tree.render({
        elem: '#menulist'
        ,data: objs
        ,showCheckbox: true  //是否显示复选框
        ,id: 'menulistid'
    });
   //form.render();
    if(obj.event === 'menusass'){
        layer.open({
            type: 1,
            title: "关联菜单列表",
            area: ['710px', '420px'],
            content: $("#menulisteddiv")//引用的弹出层的页面层的方式加载修改界面表单
        });
        character = data.code;
    }
});

$("#menulistsubmit").on('click',function () {
    var checkedData = tree.getChecked('menulistid'); //获取选中节点的数据
    //需要关联的IDcharacter，关联数据checkedData
    var menuids=getmenuid(checkedData);
    insert(menuids);
    layer.closeAll();
})

$("#charactersearch").on('click',function () {
    var charactername = $("#charactername").val();
    var charactercoding = $("#charactercoding").val();
   // layer.msg('搜索条件'+ charactername+","+charactercoding);
    //执行重载
    table.reload('charactertableid', {
        url:"role/selectByPage",
        page: {
            curr: 1 //重新从第 1 页开始
        }
        ,where: {
            'name': charactername,
            "code":charactercoding
        }
    }, 'data');
})
//获取菜单树
function  getData() {
    var object=[];
    $.ajax({
        type : 'POST',
        //  url : 'resource/getTree',
        url:'menu/getTree',
        dataType:"json",
        contentType: 'application/json',
        async:false,
        success : function (da) {
            if(da.status==200 && da.data.length >0){
                // menus=getMenuByUser();
                // datas=da.data
                var data=da.data[0];

                var obj={};
                obj.id=0;
                obj.code=data.code;
                obj.name=data.name;
                obj.level=data.level;
                obj.pid=data.pid;
                obj.path=data.path;
                if(obj.level==1){
                    obj.url=data.name;
                }else{
                    obj.url="";
                }
                obj.title=obj.name;
                obj.field="";
                obj.spread=true;
                //obj.checked=true;
                if(pd(obj.code)){
                    obj.checked=true;
                }
               /* obj.spread=true;//展开
                obj.checked=true;//选中*/
                if(data.list != null){
                    obj.list=initData(data.list);
                }

                obj.children=obj.list;
                object.push(obj);

            }
        },
        error: function(data) {
            layer.msg("初始化失败!");
        }
    });
    datas=[];
    datas= object
    return object;
}

function  initData(data) {
    var object=[];
    for(var i=0;i<data.length;i++){
        var obj={};
        obj.id=data[i].id;
        obj.code=data[i].code;
        obj.name=data[i].name;
        obj.level=data[i].level;
        obj.pid=data[i].pid;
        obj.path=data[i].path;
        if(obj.level==1){
            obj.url=data[i].name;
        }else{
            obj.url="";
        }
        obj.title=obj.name;
        obj.field="";
        if(pd(obj.code)){
            obj.checked=true;
        }
        /*obj.spread=true;//展开
        obj.checked=true;//选中*/
        if(data[i].list != null){
            obj.list=initData(data[i].list,data[i].code);
        }

        obj.children=obj.list;
        object.push(obj);
    }
    return object;
}
//角色关联的所有资源
function getmenuByrole(rolecode) {
    var resourceCodes=[];
    $.ajax({
        type : 'POST',
        //  url : 'resource/getTree',
        data:{"roleCode":rolecode},
        url:'RoleLinkResource/selectByRoleCode',
        dataType:"json",
       // contentType: 'application/json',
        async:false,
        success : function (da) {
            if(da.status==200 && da.data.length >0){
                resourceCodes=da.data;
            }
        },
        error: function(data) {
                layer.msg("初始化失败!");
            }
        });
    return resourceCodes;
}
function pd(menucode) {
    var tf=false;
  for(var i=0;i<resourceCodes.length;i++ ){
      if(resourceCodes[i].resourceCode==menucode){
          tf=true;
          break;
      }
  }
  return tf;
}

function getmenuid(menus) {
    var ids="";
    for(var i=0;i<menus.length;i++){

        if(menus[i].children.length>0){
            ids+=","+getmenuid(menus[i].children)
        }else{
            ids+=","+menus[i].code;
        }
    }
    return ids;
}
function  insert(ids) {
    var tf=false;
    $.ajax({
        type : 'POST',
        //  url : 'resource/getTree',
        data:JSON.stringify({"roleCode":character,"resourceCode":ids}),
        url:'RoleLinkResource/insert',
        dataType:"json",
        contentType: 'application/json',
        async:false,
        success : function (da) {
            if(da.status==200 && da.data.length >0){
                tf=true;
            }
        },
        error: function(data) {
            layer.msg("保存失败!");
        }
    });
    return tf;
}
